﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GameEngine.MoveGenerators
{
    /// <summary>
    /// Orientation in which man moves should be generated
    /// </summary>
    public enum enumManOrientation { Up, Down }

    /// <summary>
    /// Interface for man move generator
    /// </summary>
    public interface IManMoveGenerator
    {
        List<Position> GetManMoves(Position figure, enumManOrientation eOrientation);
        List<Position> GetManJumps(Position figure, enumManOrientation eOrientation);
        Move CompleteMoveStep(Position start, Position end, enumManOrientation eOrientation);
    }

    /// <summary>
    /// Interface for king move generator
    /// </summary>
    public interface IKingMoveGenerator
    {
        List<Position> GetKingMoves(Position figure);
        List<Position> GetKingJumps(Position figure);
        List<Position> GetKingJumps(Position figure, enumDiagonalDir? ignoredDirection);

        Move CompleteMoveStep(Position start, Position end, enumManOrientation eOrientation);
    }

}
